/*
 * Tencent is pleased to support the open source community by making 蓝鲸智云PaaS平台社区版 (BlueKing PaaS Community Edition) available.
 * Copyright (C) 2017-2019 THL A29 Limited, a Tencent company. All rights reserved.
 * Licensed under the MIT License (the "License"); you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * http://opensource.org/licenses/MIT
 * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
 * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
 * specific language governing permissions and limitations under the License.
 *
 */

package com.tencent.devops.common.service.gray

import org.springframework.beans.factory.annotation.Value
import org.springframework.stereotype.Component

/**
 * deng
 * 2018-12-26
 */
@Component
class Gray {

    @Value("\${project.gray:#{null}}")
    private val grayFlag: String? = null

    var gray: Boolean? = null
    private val redisKey = "project:setting:gray" // 灰度项目列表存在redis的标识key

    fun isGray(): Boolean {
        if (gray == null) {
            synchronized(this) {
                if (gray == null) {
                    gray = !grayFlag.isNullOrBlank() && grayFlag!!.toBoolean()
                }
            }
        }
        return gray!!
    }

    fun getGrayRedisKey() = redisKey
}
